﻿/**
 * jQuery EasyUI 1.3.5
 *
 * Copyright (c) 2009-2013 www.jeasyui.com. All rights reserved.
 *
 * Licensed under the GPL or commercial licenses
 * To use it on other terms please contact us: info@jeasyui.com
 * http://www.gnu.org/licenses/gpl.txt
 * http://www.jeasyui.com/license_commercial.php
 *
 */
(function ($) {
    function _1(_2) {
        var _3 = $.data(_2, "pagination");
        var _4 = _3.options;
        var bb = _3.bb = {};
        var _5 = $(_2).addClass("pagination").html("<table cellspacing=\"0\" cellpadding=\"0\" border=\"0\"><tr></tr></table>");
        var tr = _5.find("tr");
        var aa = $.extend([], _4.layout);
        if (!_4.showPageList) {
            _6(aa, "list");
        }
        if (!_4.showRefresh) {
            _6(aa, "refresh");
        }
        if (aa[0] == "sep") {
            aa.shift();
        }
        if (aa[aa.length - 1] == "sep") {
            aa.pop();
        }
        for (var _7 = 0; _7 < aa.length; _7++) {
            var _8 = aa[_7];
            if (_8 == "list") {
                var ps = $("<select class=\"pagination-page-list\"></select>");
                ps.bind("change", function () {
                    _4.pageSize = parseInt($(this).val());
                    _4.onChangePageSize.call(_2, _4.pageSize);
                    _10(_2, _4.pageNumber);
                });
                for (var i = 0; i < _4.pageList.length; i++) {
                    $("<option></option>").text(_4.pageList[i]).appendTo(ps);
                }
                $("<td></td>").append(ps).appendTo(tr);
            } else {
                if (_8 == "sep") {
                    $("<td><div class=\"pagination-btn-separator\"></div></td>").appendTo(tr);
                } else {
                    if (_8 == "first") {
                        bb.first = _9("first");
                    } else {
                        if (_8 == "prev") {
                            bb.prev = _9("prev");
                        } else {
                            if (_8 == "next") {
                                bb.next = _9("next");
                            } else {
                                if (_8 == "last") {
                                    bb.last = _9("last");
                                } else {
                                    if (_8 == "manual") {
                                        $("<span style=\"padding-left:6px;\"></span>").html(_4.beforePageText).appendTo(tr).wrap("<td></td>");
                                        bb.num = $("<input class=\"pagination-num\" type=\"text\" value=\"1\" size=\"2\">").appendTo(tr).wrap("<td></td>");
                                        bb.num.unbind(".pagination").bind("keydown.pagination", function (e) {
                                            if (e.keyCode == 13) {
                                                var _a = parseInt($(this).val()) || 1;
                                                _10(_2, _a);
                                                return false;
                                            }
                                        });
                                        bb.after = $("<span style=\"padding-right:6px;\"></span>").appendTo(tr).wrap("<td></td>");
                                    } else {
                                        if (_8 == "refresh") {
                                            bb.refresh = _9("refresh");
                                        } else {
                                            if (_8 == "links") {
                                                $("<td class=\"pagination-links\"></td>").appendTo(tr);
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
        if (_4.buttons) {
            $("<td><div class=\"pagination-btn-separator\"></div></td>").appendTo(tr);
            if ($.isArray(_4.buttons)) {
                for (var i = 0; i < _4.buttons.length; i++) {
                    var _b = _4.buttons[i];
                    if (_b == "-") {
                        $("<td><div class=\"pagination-btn-separator\"></div></td>").appendTo(tr);
                    } else {
                        var td = $("<td></td>").appendTo(tr);
                        var a = $("<a href=\"javascript:void(0)\"></a>").appendTo(td);
                        a[0].onclick = eval(_b.handler || function () {
                        });
                        a.linkbutton($.extend({}, _b, {plain: true}));
                    }
                }
            } else {
                var td = $("<td></td>").appendTo(tr);
                $(_4.buttons).appendTo(td).show();
            }
        }
        $("<div class=\"pagination-info\"></div>").appendTo(_5);
        $("<div style=\"clear:both;\"></div>").appendTo(_5);
        function _9(_c) {
            var _d = _4.nav[_c];
            var a = $("<a href=\"javascript:void(0)\"></a>").appendTo(tr);
            a.wrap("<td></td>");
            a.linkbutton({iconCls: _d.iconCls, plain: true}).unbind(".pagination").bind("click.pagination", function () {
                _d.handler.call(_2);
            });
            return a;
        };
        function _6(aa, _e) {
            var _f = $.inArray(_e, aa);
            if (_f >= 0) {
                aa.splice(_f, 1);
            }
            return aa;
        };
    };
    function _10(_11, _12) {
        var _13 = $.data(_11, "pagination").options;
        _14(_11, {pageNumber: _12});
        _13.onSelectPage.call(_11, _13.pageNumber, _13.pageSize);
    };
    function _14(_15, _16) {
        var _17 = $.data(_15, "pagination");
        var _18 = _17.options;
        var bb = _17.bb;
        $.extend(_18, _16 || {});
        var ps = $(_15).find("select.pagination-page-list");
        if (ps.length) {
            ps.val(_18.pageSize + "");
            _18.pageSize = parseInt(ps.val());
        }
        var _19 = Math.ceil(_18.total / _18.pageSize) || 1;
        if (_18.pageNumber < 1) {
            _18.pageNumber = 1;
        }
        if (_18.pageNumber > _19) {
            _18.pageNumber = _19;
        }
        if (bb.num) {
            bb.num.val(_18.pageNumber);
        }
        if (bb.after) {
            bb.after.html(_18.afterPageText.replace(/{pages}/, _19));
        }
        var td = $(_15).find("td.pagination-links");
        if (td.length) {
            td.empty();
            var _1a = _18.pageNumber - Math.floor(_18.links / 2);
            if (_1a < 1) {
                _1a = 1;
            }
            var _1b = _1a + _18.links - 1;
            if (_1b > _19) {
                _1b = _19;
            }
            _1a = _1b - _18.links + 1;
            if (_1a < 1) {
                _1a = 1;
            }
            for (var i = _1a; i <= _1b; i++) {
                var a = $("<a class=\"pagination-link\" href=\"javascript:void(0)\"></a>").appendTo(td);
                a.linkbutton({plain: true, text: i});
                if (i == _18.pageNumber) {
                    a.linkbutton("select");
                } else {
                    a.unbind(".pagination").bind("click.pagination", {pageNumber: i}, function (e) {
                        _10(_15, e.data.pageNumber);
                    });
                }
            }
        }
        var _1c = _18.displayMsg;
        _1c = _1c.replace(/{from}/, _18.total == 0 ? 0 : _18.pageSize * (_18.pageNumber - 1) + 1);
        _1c = _1c.replace(/{to}/, Math.min(_18.pageSize * (_18.pageNumber), _18.total));
        _1c = _1c.replace(/{total}/, _18.total);
        $(_15).find("div.pagination-info").html(_1c);
        if (bb.first) {
            bb.first.linkbutton({disabled: (_18.pageNumber == 1)});
        }
        if (bb.prev) {
            bb.prev.linkbutton({disabled: (_18.pageNumber == 1)});
        }
        if (bb.next) {
            bb.next.linkbutton({disabled: (_18.pageNumber == _19)});
        }
        if (bb.last) {
            bb.last.linkbutton({disabled: (_18.pageNumber == _19)});
        }
        _1d(_15, _18.loading);
    };
    function _1d(_1e, _1f) {
        var _20 = $.data(_1e, "pagination");
        var _21 = _20.options;
        _21.loading = _1f;
        if (_21.showRefresh && _20.bb.refresh) {
            _20.bb.refresh.linkbutton({iconCls: (_21.loading ? "pagination-loading" : "pagination-load")});
        }
    };
    $.fn.pagination = function (_22, _23) {
        if (typeof _22 == "string") {
            return $.fn.pagination.methods[_22](this, _23);
        }
        _22 = _22 || {};
        return this.each(function () {
            var _24;
            var _25 = $.data(this, "pagination");
            if (_25) {
                _24 = $.extend(_25.options, _22);
            } else {
                _24 = $.extend({}, $.fn.pagination.defaults, $.fn.pagination.parseOptions(this), _22);
                $.data(this, "pagination", {options: _24});
            }
            _1(this);
            _14(this);
        });
    };
    $.fn.pagination.methods = {options: function (jq) {
        return $.data(jq[0], "pagination").options;
    }, loading: function (jq) {
        return jq.each(function () {
            _1d(this, true);
        });
    }, loaded: function (jq) {
        return jq.each(function () {
            _1d(this, false);
        });
    }, refresh: function (jq, _26) {
        return jq.each(function () {
            _14(this, _26);
        });
    }, select: function (jq, _27) {
        return jq.each(function () {
            _10(this, _27);
        });
    }};
    $.fn.pagination.parseOptions = function (_28) {
        var t = $(_28);
        return $.extend({}, $.parser.parseOptions(_28, [
            {total: "number", pageSize: "number", pageNumber: "number", links: "number"},
            {loading: "boolean", showPageList: "boolean", showRefresh: "boolean"}
        ]), {pageList: (t.attr("pageList") ? eval(t.attr("pageList")) : undefined)});
    };
    $.fn.pagination.defaults = {total: 1, pageSize: 10, pageNumber: 1, pageList: [10, 20, 30, 50], loading: false, buttons: null, showPageList: true, showRefresh: true, links: 10, layout: ["list", "sep", "first", "prev", "sep", "manual", "sep", "next", "last", "sep", "refresh"], onSelectPage: function (_29, _2a) {
    }, onBeforeRefresh: function (_2b, _2c) {
    }, onRefresh: function (_2d, _2e) {
    }, onChangePageSize: function (_2f) {
    }, beforePageText: "Page", afterPageText: "of {pages}", displayMsg: "Displaying {from} to {to} of {total} items", nav: {first: {iconCls: "pagination-first", handler: function () {
        var _30 = $(this).pagination("options");
        if (_30.pageNumber > 1) {
            $(this).pagination("select", 1);
        }
    }}, prev: {iconCls: "pagination-prev", handler: function () {
        var _31 = $(this).pagination("options");
        if (_31.pageNumber > 1) {
            $(this).pagination("select", _31.pageNumber - 1);
        }
    }}, next: {iconCls: "pagination-next", handler: function () {
        var _32 = $(this).pagination("options");
        var _33 = Math.ceil(_32.total / _32.pageSize);
        if (_32.pageNumber < _33) {
            $(this).pagination("select", _32.pageNumber + 1);
        }
    }}, last: {iconCls: "pagination-last", handler: function () {
        var _34 = $(this).pagination("options");
        var _35 = Math.ceil(_34.total / _34.pageSize);
        if (_34.pageNumber < _35) {
            $(this).pagination("select", _35);
        }
    }}, refresh: {iconCls: "pagination-refresh", handler: function () {
        var _36 = $(this).pagination("options");
        if (_36.onBeforeRefresh.call(this, _36.pageNumber, _36.pageSize) != false) {
            $(this).pagination("select", _36.pageNumber);
            _36.onRefresh.call(this, _36.pageNumber, _36.pageSize);
        }
    }}}};
})(jQuery);

